package xin.zhiyin.服务.书.实现;

import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import xin.zhiyin.仓库.书.书章节内容Repository;
import xin.zhiyin.仓库.书.书章节内容图片Repository;
import xin.zhiyin.实体.书章节内容Entity;
import xin.zhiyin.服务.书.书章节内容Service;
import xin.zhiyin.服务.书.书章节内容图片Service;

import java.util.List;
import java.util.Optional;

@Service
@Transactional(rollbackFor = Exception.class) /*声明式事务管理*/
public class 书章节内容Service实现 implements 书章节内容Service {
    @Autowired
    private 书章节内容Repository 章节内容Dao;
    @Autowired
    private 书章节内容图片Repository 内容图片Dao;
    @Override
    public void 保存(书章节内容Entity 书章节内容) {
        章节内容Dao.save(书章节内容);
    }

    @Override
    public 书章节内容Entity 根据Id获取书章节内容(Long id) {
        书章节内容Entity 章节内容 = new 书章节内容Entity();
        Optional<书章节内容Entity> op = 章节内容Dao.findById(id);
        if(op.isPresent())
        {
            章节内容 = op.get();
        }
        return 章节内容;
    }

    @Override
    public List<书章节内容Entity> 获取所有书章节内容() {
        return 章节内容Dao.findAll();
    }

    @Override
    public void 更新(书章节内容Entity chapterContent) {
        书章节内容Entity 章节内容 = 章节内容Dao.findById(chapterContent.getId()).get();
        BeanUtils.copyProperties(chapterContent,章节内容);
        章节内容Dao.save(章节内容);
    }

    @Override
    public void 批量删除(List chapterContentIds) {
        章节内容Dao.批量删除(chapterContentIds);
    }
}
